package com.hclc.api.job;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hclc.entity.dto.JobAndTriggerDto;

import java.util.Map;

/**
 * @author lixin
 * @version V1.0
 * @ClassName: IJobAndTriggerService
 * @Description: TODO(quartz接口)
 * @date 2019年9月17日 下午5:25:20
 */
public interface IJobAndTriggerService {
	/**
	 * @param @param  search
	 * @param @return 参数
	 * @return IPage<JobAndTriggerDto>    返回类型
	 * @throws
	 * @Title: getPageJob
	 * @Description: TODO(查询定时任务 ， 分页)
	 */
	IPage<JobAndTriggerDto> getPageJob(IPage page);

	/**
	 * @param @param  jobClassName 任务路径名称
	 * @param @param  jobGroupName 任务分组
	 * @param @param  cronExpression cron时间规则
	 * @param @throws Exception    参数
	 * @return void    返回类型
	 * @throws
	 * @Title: addJob
	 * @Description: TODO(添加任务)
	 */
	void addJob(String jobClassName, String jobGroupName, String cronExpression) throws Exception;

	/**
	 * @param @param  jobClassName 任务路径名称
	 * @param @param  jobGroupName 任务分组
	 * @param @param  cronExpression cron时间规则
	 * @param @param  jobDescription 参数
	 * @param @param  params
	 * @param @throws Exception  参数说明
	 * @return void    返回类型
	 * @throws
	 * @Title: addJob
	 * @Description: TODO(添加动态任务)
	 */
	void addJob(String jobClassName, String jobGroupName, String cronExpression, String jobDescription, Map<String, Object> params) throws Exception;

	/**
	 * @param @param  jobClassName 任务路径名称
	 * @param @param  jobGroupName 任务分组
	 * @param @param  cronExpression cron时间规则
	 * @param @throws Exception    参数
	 * @return void    返回类型
	 * @throws
	 * @Title: updateJob
	 * @Description: TODO(更新定时任务)
	 */
	void updateJob(String jobClassName, String jobGroupName, String cronExpression) throws Exception;

	/**
	 * @param @param  jobClassName 任务路径名称
	 * @param @param  jobGroupName 任务分组
	 * @param @throws Exception    参数
	 * @return void    返回类型
	 * @throws
	 * @Title: deleteJob
	 * @Description: TODO(删除定时任务)
	 */
	void deleteJob(String jobClassName, String jobGroupName) throws Exception;

	/**
	 * @param @param  jobClassName 任务路径名称
	 * @param @param  jobGroupName 任务分组
	 * @param @throws Exception    参数
	 * @return void    返回类型
	 * @throws
	 * @Title: pauseJob
	 * @Description: TODO(暂停定时任务)
	 */
	void pauseJob(String jobClassName, String jobGroupName) throws Exception;

	/**
	 * @param @param  jobClassName 任务路径名称
	 * @param @param  jobGroupName 任务分组
	 * @param @throws Exception    参数
	 * @return void    返回类型
	 * @throws
	 * @Title: resumejob
	 * @Description: TODO(恢复任务)
	 */
	void resumeJob(String jobClassName, String jobGroupName) throws Exception;
}
